/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pooproj.repositorio;

import java.util.ArrayList;
import pooproj.basica.Cliente;
import pooproj.erro.ConexaoException;
import pooproj.erro.ConsultaException;

/**
 *
 * @author Daniella
 */
public interface RepositorioCliente {
    
    /**
     * Cadastra um cliente no BD
     * @param c O Cliente para inserir
     * @throws ConsultaException
     * @throws ConexaoException 
     */
    public void inserir(Cliente c) throws ConsultaException,ConexaoException;
    
    /**
     * Altera um Cliente do BD
     * @param c O cliente a ser alterado
     * @throws ConsultaException
     * @throws ConexaoException 
     */
    public void alterar(Cliente c) throws ConsultaException,ConexaoException;
    
    /**
     * Exclue um cliente do BD
     * @param c O cliente a ser excluido
     * @throws ConsultaException
     * @throws ConexaoException 
     */
    public void excluir(Cliente c) throws ConsultaException,ConexaoException;
    
    /**
     * Retorna a lista de clientes no BD
     * @return lista do tipo ArrayList 
     * @throws ConsultaException
     * @throws ConexaoException 
     */
    public ArrayList<Cliente> listar() throws ConsultaException,ConexaoException;
    
    /**
     * Retorna o cliente com o ID passado, ou nulo
     * @param id
     * @return o Cliente
     * @throws ConsultaException
     * @throws ConexaoException 
     */
    public Cliente consultar(Integer id) throws ConsultaException,ConexaoException;
    
    /**
     * Retorna o cliente com o NOME passado, ou nulo
     * @param nome
     * @return o Cliente
     * @throws ConsultaException
     * @throws ConexaoException 
     */
    public Cliente consultar(String nome) throws ConsultaException,ConexaoException;

    
}
